Physically accurate materials
Use Directive
to tune the material parameters.
Graphics3D[{Darker[White], Polygon[{{-2,-2,0}, {2,-2,0}, {2,2,0}, {-2,2,0}}],{ Directive[Cyan, "MaterialThickness"->1.0, "Transmission"->1.0,"Roughness"->0.13, "Ior"->2.0], Sphere[{0,0,1}, 1]}}]
(*VB[*)(Graphics3D[{RGBColor[0.6666666666666667, 0.6666666666666667, 0.6666666666666667], Polygon[{{-2, -2, 0}, {2, -2, 0}, {2, 2, 0}, {-2, 2, 0}}], {Directive[RGBColor[0, 1, 1], "MaterialThickness" -> 1., "Transmission" -> 1., "Roughness" -> 0.13, "Ior" -> 2.], Sphere[{0, 0, 1}, 1]}}])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRAeF5BwL0osyMhMLjZ2SWOGqfDJLC6B8DiARJC7k3N+Tn5RUVgoCDy1x2RAjGMHEgH5OZXp+XlpLJhmwXiZ//7//w8hgCIMaJJMQAZ+STCBRRKsCSHJhOICVhCPE0i4ZBalJpdklqViehCsL5MRRiBMCCrNSQ0WBDJ8E0tSizITc0KAIZadl1pcXMQABh/s0RTzABkhRYl5xbmZxcWZ+Xm41IFcFJRfmp4BNmxJgS3X9cUH0BWBHOoJDH+IGQwOEGk2IBFckJFalIoWDgywIEB4BQAKH3YD"*)(*]VB*)
Graphics3D[{Darker[White], Polygon[{{-2,-2,0}, {2,-2,0}, {2,2,0}, {-2,2,0}}],{ Directive["Emissive"->Red], Sphere[{0,0,1}, 1]}}]
(*VB[*)(Graphics3D[{RGBColor[0.6666666666666667, 0.6666666666666667, 0.6666666666666667], Polygon[{{-2, -2, 0}, {2, -2, 0}, {2, 2, 0}, {-2, 2, 0}}], {Directive["Emissive" -> RGBColor[1, 0, 0]], Sphere[{0, 0, 1}, 1]}}])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRAeF5BwL0osyMhMLjZ2SWOGqfDJLC6B8DiARJC7k3N+Tn5RUVgoCDy1x2RAjGMHEgH5OZXp+XlpLJhmwXiZ//7//w8hgCIMaJJMQAZ+STCBRRKsCSHJhOICsAM5gYRLZlFqcklmWSpCQVBpTmowyKeuuZnFxSApDL9nMsLMRTKcDUgEF2SkFqWiuQSuDqINRAAA/RxXvQ=="*)(*]VB*)
Or use built-in directives
Plot3D[Sin[x] Cos[y], {x,-10,10}, {y,-10,10}][[1]]; Graphics3D[{%, {Graphics3D`Materials[#], Sphere[{0,0,2}, 6]}}] &/@ {"Glass"} // Column
(*GB[*){{(*VB[*)(FrontEndRef["3fc58bc8-e877-4539-a33f-6e504f5f6399"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKG6clm1okJVvoplqYm+uamBpb6iYaG6fpmqWaGpikmaaZGVtaAgCFEBVm"*)(*]VB*)}}(*]GB*)
Graphics3D[{ PointLight[Red, -{2, 2, -2}], PointLight[Green, -{-2, 2, -2}], PointLight[Blue, -{-2, -2, -2}], { Directive["Roughness" -> 1], Icosahedron[1] } }]
(*VB[*)(Graphics3D[{PointLight[RGBColor[1, 0, 0], {-2, -2, 2}], PointLight[RGBColor[0, 1, 0], {2, -2, 2}], PointLight[RGBColor[0, 0, 1], {2, 2, 2}], {Directive["Roughness" -> 1], Icosahedron[1]}}])(*,*)(*"1:eJyd0EsOwiAQgGGqXfg4hWfwBtqkmnRh8ASVQpmkYQxQjy/yCLjRxLj5E5jhW7C7IRUVIcTUPiechnTa+LS6v0tgZt+IOm90YKxY5I0LgrIdjNKKZbhb+dD2cMQJNQQHSE5ayAQ8nXMpAftRjFj1RQzEf2JhP4klSSx/EH9p7dOA5szCg78X6Dzxa5hRnEepuDGJj2+2PmeGppd80Kji5AXx81Mu"*)(*]VB*)
Real-time pathtracing
This option allows to render using unbiased methods
Plot3D[Sin[x] Cos[y], {x,-10,10}, {y,-10,10}][[1]]; Graphics3D[{%, {Graphics3D`Materials["Glass"], Red, Sphere[{0,0,2}, 6]}}, "Renderer"->"PathTracing"]
One can specify directly in Directive
Graphics3D[{ Polygon[30 {{-1,-1,0}, {-1,1,0}, {1,1,0}, {1,-1,0}}], {Directive["Metalness"->1, "Roughness"->0], Sphere[{-5,0,2},2]}, {Directive["Roughness"->0], Red, Sphere[{-5,5,2},2]}, {Directive["Roughness"->0, "Transmission"->1.0, "MaterialThickness"->0.2], Blue, Sphere[{3,-1,2},2]}, {Directive["Emissive"->White], Polygon[ {{10,13,0},{10,13,30},{-20,13,30},{-20,13,0}}]} }, Lighting->None, Background->Black, "Renderer"->"PathTracing"]